Can a constructor be used to change the data inside an object?
No. Constructors always create new objects. (They might get data from an old object, but a completely separate object will be constructed using a different chunk of main memory.)
Here is the example program, this time modified to create a second Point object:
import java.awt.*;
class ChangingData2
{
  public static void main ( String arg[] )
  {
    Point pt = new Point( 12, 45 );                  // construct a Point
    System.out.println( "First values: " + pt );     
    pt       = new Point( -13, 49 ) ;                // construct a new Point
    System.out.println( "Final values: " + pt ); 
  }
}
 
Here is a picture showing the situation before and after the second assignment statement:
 
In the "After" picture, the first object is shaded to
emphasis that it is now "garbage."
The reference variable pt refers to the newly created object.